#ifndef __SYSTEM_SM_H__
#define __SYSTEM_SM_H__

#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>
#include <stdbool.h>

enum sys_sm_events_e {
    EVENT_BUTTON_OK = 1,
    EVENT_BUTTON_UP,
    EVENT_BUTTON_DOWN,
    EVENT_BUTTON_BACK,
};

extern bool is_hardware_testing;

void system_sm_init(void);
void system_sm_handler(void);
void system_sm_send_event(uint8_t event_id);
void system_sm_send_event_with_param(uint8_t event_id, uint32_t param);

#ifdef __cplusplus
}   /* extern "C" */ 
#endif

#endif
